﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml.Serialization;

namespace ElectronicCommerce.Framework.ServiceModel.WCF.BindingMessage
{
    /// <remarks/>
    [System.SerializableAttribute()]
    [XmlRoot("binding")]
    public class NetMsmqBindingMsg
    {
        public NetMsmqBindingMsg()
        {
            System.ServiceModel.NetMsmqBinding source = new System.ServiceModel.NetMsmqBinding();
            this.queueTransferProtocolField = (NetMsmqBindingMsgQueueTransferProtocol)source.QueueTransferProtocol;
            this.maxBufferPoolSizeField = source.MaxBufferPoolSize;
            this.useActiveDirectoryField = source.UseActiveDirectory;
            this.deadLetterQueueField = (NetMsmqBindingMsgDeadLetterQueue)source.DeadLetterQueue;
            this.durableField = source.Durable;
            this.exactlyOnceField = source.ExactlyOnce;
            this.maxReceivedMessageSizeField = source.MaxReceivedMessageSize;
            this.maxRetryCyclesField = source.MaxRetryCycles;
            this.receiveErrorHandlingField = (NetMsmqBindingMsgReceiveErrorHandling)source.ReceiveErrorHandling;
            this.receiveRetryCountField = source.ReceiveRetryCount;
            this.useSourceJournalField = source.UseSourceJournal;
            this.useMsmqTracingField = source.UseMsmqTracing;
            this.nameField = source.Name;
        }

        private NetMsmqBindingMsgReaderQuotas readerQuotasField;

        private NetMsmqBindingMsgSecurity securityField;

        private NetMsmqBindingMsgQueueTransferProtocol queueTransferProtocolField;

        private bool queueTransferProtocolFieldSpecified;

        private long maxBufferPoolSizeField;

        private bool maxBufferPoolSizeFieldSpecified;

        private bool useActiveDirectoryField;

        private bool useActiveDirectoryFieldSpecified;

        private string customDeadLetterQueueField;

        private NetMsmqBindingMsgDeadLetterQueue deadLetterQueueField;

        private bool deadLetterQueueFieldSpecified;

        private bool durableField;

        private bool durableFieldSpecified;

        private bool exactlyOnceField;

        private bool exactlyOnceFieldSpecified;

        private long maxReceivedMessageSizeField;

        private bool maxReceivedMessageSizeFieldSpecified;

        private int maxRetryCyclesField;

        private bool maxRetryCyclesFieldSpecified;

        private NetMsmqBindingMsgReceiveErrorHandling receiveErrorHandlingField;

        private bool receiveErrorHandlingFieldSpecified;

        private int receiveRetryCountField;

        private bool receiveRetryCountFieldSpecified;

        private string retryCycleDelayField;

        private string timeToLiveField;

        private bool useSourceJournalField;

        private bool useSourceJournalFieldSpecified;

        private bool useMsmqTracingField;

        private bool useMsmqTracingFieldSpecified;

        private string nameField;

        private string closeTimeoutField;

        private string openTimeoutField;

        private string receiveTimeoutField;

        private string sendTimeoutField;

        private string lockAttributesField;

        private string lockAllAttributesExceptField;

        private string lockElementsField;

        private string lockAllElementsExceptField;

        private bool lockItemField;

        private bool lockItemFieldSpecified;

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("readerQuotas", typeof(NetMsmqBindingMsgReaderQuotas))]
        public NetMsmqBindingMsgReaderQuotas readerQuotas
        {
            get
            {
                return this.readerQuotasField;
            }
            set
            {
                this.readerQuotasField = value;
            }
        }


        [System.Xml.Serialization.XmlElementAttribute("security", typeof(NetMsmqBindingMsgSecurity))]
        public NetMsmqBindingMsgSecurity security
        {
            get
            {
                return this.securityField;
            }
            set
            {
                this.securityField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public NetMsmqBindingMsgQueueTransferProtocol queueTransferProtocol
        {
            get
            {
                return this.queueTransferProtocolField;
            }
            set
            {
                this.queueTransferProtocolField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool queueTransferProtocolSpecified
        {
            get
            {
                return this.queueTransferProtocolFieldSpecified;
            }
            set
            {
                this.queueTransferProtocolFieldSpecified = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public long maxBufferPoolSize
        {
            get
            {
                return this.maxBufferPoolSizeField;
            }
            set
            {
                this.maxBufferPoolSizeField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool maxBufferPoolSizeSpecified
        {
            get
            {
                return this.maxBufferPoolSizeFieldSpecified;
            }
            set
            {
                this.maxBufferPoolSizeFieldSpecified = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public bool useActiveDirectory
        {
            get
            {
                return this.useActiveDirectoryField;
            }
            set
            {
                this.useActiveDirectoryField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool useActiveDirectorySpecified
        {
            get
            {
                return this.useActiveDirectoryFieldSpecified;
            }
            set
            {
                this.useActiveDirectoryFieldSpecified = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string customDeadLetterQueue
        {
            get
            {
                return this.customDeadLetterQueueField;
            }
            set
            {
                this.customDeadLetterQueueField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public NetMsmqBindingMsgDeadLetterQueue deadLetterQueue
        {
            get
            {
                return this.deadLetterQueueField;
            }
            set
            {
                this.deadLetterQueueField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool deadLetterQueueSpecified
        {
            get
            {
                return this.deadLetterQueueFieldSpecified;
            }
            set
            {
                this.deadLetterQueueFieldSpecified = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public bool durable
        {
            get
            {
                return this.durableField;
            }
            set
            {
                this.durableField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool durableSpecified
        {
            get
            {
                return this.durableFieldSpecified;
            }
            set
            {
                this.durableFieldSpecified = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public bool exactlyOnce
        {
            get
            {
                return this.exactlyOnceField;
            }
            set
            {
                this.exactlyOnceField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool exactlyOnceSpecified
        {
            get
            {
                return this.exactlyOnceFieldSpecified;
            }
            set
            {
                this.exactlyOnceFieldSpecified = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public long maxReceivedMessageSize
        {
            get
            {
                return this.maxReceivedMessageSizeField;
            }
            set
            {
                this.maxReceivedMessageSizeField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool maxReceivedMessageSizeSpecified
        {
            get
            {
                return this.maxReceivedMessageSizeFieldSpecified;
            }
            set
            {
                this.maxReceivedMessageSizeFieldSpecified = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public int maxRetryCycles
        {
            get
            {
                return this.maxRetryCyclesField;
            }
            set
            {
                this.maxRetryCyclesField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool maxRetryCyclesSpecified
        {
            get
            {
                return this.maxRetryCyclesFieldSpecified;
            }
            set
            {
                this.maxRetryCyclesFieldSpecified = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public NetMsmqBindingMsgReceiveErrorHandling receiveErrorHandling
        {
            get
            {
                return this.receiveErrorHandlingField;
            }
            set
            {
                this.receiveErrorHandlingField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool receiveErrorHandlingSpecified
        {
            get
            {
                return this.receiveErrorHandlingFieldSpecified;
            }
            set
            {
                this.receiveErrorHandlingFieldSpecified = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public int receiveRetryCount
        {
            get
            {
                return this.receiveRetryCountField;
            }
            set
            {
                this.receiveRetryCountField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool receiveRetryCountSpecified
        {
            get
            {
                return this.receiveRetryCountFieldSpecified;
            }
            set
            {
                this.receiveRetryCountFieldSpecified = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string retryCycleDelay
        {
            get
            {
                return this.retryCycleDelayField;
            }
            set
            {
                this.retryCycleDelayField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string timeToLive
        {
            get
            {
                return this.timeToLiveField;
            }
            set
            {
                this.timeToLiveField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public bool useSourceJournal
        {
            get
            {
                return this.useSourceJournalField;
            }
            set
            {
                this.useSourceJournalField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool useSourceJournalSpecified
        {
            get
            {
                return this.useSourceJournalFieldSpecified;
            }
            set
            {
                this.useSourceJournalFieldSpecified = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public bool useMsmqTracing
        {
            get
            {
                return this.useMsmqTracingField;
            }
            set
            {
                this.useMsmqTracingField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool useMsmqTracingSpecified
        {
            get
            {
                return this.useMsmqTracingFieldSpecified;
            }
            set
            {
                this.useMsmqTracingFieldSpecified = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string name
        {
            get
            {
                return this.nameField;
            }
            set
            {
                this.nameField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string closeTimeout
        {
            get
            {
                return this.closeTimeoutField;
            }
            set
            {
                this.closeTimeoutField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string openTimeout
        {
            get
            {
                return this.openTimeoutField;
            }
            set
            {
                this.openTimeoutField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string receiveTimeout
        {
            get
            {
                return this.receiveTimeoutField;
            }
            set
            {
                this.receiveTimeoutField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string sendTimeout
        {
            get
            {
                return this.sendTimeoutField;
            }
            set
            {
                this.sendTimeoutField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string lockAttributes
        {
            get
            {
                return this.lockAttributesField;
            }
            set
            {
                this.lockAttributesField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string lockAllAttributesExcept
        {
            get
            {
                return this.lockAllAttributesExceptField;
            }
            set
            {
                this.lockAllAttributesExceptField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string lockElements
        {
            get
            {
                return this.lockElementsField;
            }
            set
            {
                this.lockElementsField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string lockAllElementsExcept
        {
            get
            {
                return this.lockAllElementsExceptField;
            }
            set
            {
                this.lockAllElementsExceptField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public bool lockItem
        {
            get
            {
                return this.lockItemField;
            }
            set
            {
                this.lockItemField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool lockItemSpecified
        {
            get
            {
                return this.lockItemFieldSpecified;
            }
            set
            {
                this.lockItemFieldSpecified = value;
            }
        }
    }

    /// <remarks/>
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
    public class NetMsmqBindingMsgReaderQuotas
    {
        public NetMsmqBindingMsgReaderQuotas()
        {
            System.Xml.XmlDictionaryReaderQuotas source = new System.Xml.XmlDictionaryReaderQuotas();
            this.maxDepthField = source.MaxDepth;
            this.maxStringContentLengthField = source.MaxStringContentLength;
            this.maxArrayLengthField = source.MaxArrayLength;
            this.maxBytesPerReadField = source.MaxBytesPerRead;
            this.maxNameTableCharCountField = source.MaxNameTableCharCount;
        }

        private int maxDepthField;

        private bool maxDepthFieldSpecified;

        private int maxStringContentLengthField;

        private bool maxStringContentLengthFieldSpecified;

        private int maxArrayLengthField;

        private bool maxArrayLengthFieldSpecified;

        private int maxBytesPerReadField;

        private bool maxBytesPerReadFieldSpecified;

        private int maxNameTableCharCountField;

        private bool maxNameTableCharCountFieldSpecified;

        private string lockAttributesField;

        private string lockAllAttributesExceptField;

        private string lockElementsField;

        private string lockAllElementsExceptField;

        private bool lockItemField;

        private bool lockItemFieldSpecified;

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public int maxDepth
        {
            get
            {
                return this.maxDepthField;
            }
            set
            {
                this.maxDepthField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool maxDepthSpecified
        {
            get
            {
                return this.maxDepthFieldSpecified;
            }
            set
            {
                this.maxDepthFieldSpecified = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public int maxStringContentLength
        {
            get
            {
                return this.maxStringContentLengthField;
            }
            set
            {
                this.maxStringContentLengthField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool maxStringContentLengthSpecified
        {
            get
            {
                return this.maxStringContentLengthFieldSpecified;
            }
            set
            {
                this.maxStringContentLengthFieldSpecified = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public int maxArrayLength
        {
            get
            {
                return this.maxArrayLengthField;
            }
            set
            {
                this.maxArrayLengthField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool maxArrayLengthSpecified
        {
            get
            {
                return this.maxArrayLengthFieldSpecified;
            }
            set
            {
                this.maxArrayLengthFieldSpecified = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public int maxBytesPerRead
        {
            get
            {
                return this.maxBytesPerReadField;
            }
            set
            {
                this.maxBytesPerReadField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool maxBytesPerReadSpecified
        {
            get
            {
                return this.maxBytesPerReadFieldSpecified;
            }
            set
            {
                this.maxBytesPerReadFieldSpecified = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public int maxNameTableCharCount
        {
            get
            {
                return this.maxNameTableCharCountField;
            }
            set
            {
                this.maxNameTableCharCountField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool maxNameTableCharCountSpecified
        {
            get
            {
                return this.maxNameTableCharCountFieldSpecified;
            }
            set
            {
                this.maxNameTableCharCountFieldSpecified = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string lockAttributes
        {
            get
            {
                return this.lockAttributesField;
            }
            set
            {
                this.lockAttributesField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string lockAllAttributesExcept
        {
            get
            {
                return this.lockAllAttributesExceptField;
            }
            set
            {
                this.lockAllAttributesExceptField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string lockElements
        {
            get
            {
                return this.lockElementsField;
            }
            set
            {
                this.lockElementsField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string lockAllElementsExcept
        {
            get
            {
                return this.lockAllElementsExceptField;
            }
            set
            {
                this.lockAllElementsExceptField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public bool lockItem
        {
            get
            {
                return this.lockItemField;
            }
            set
            {
                this.lockItemField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool lockItemSpecified
        {
            get
            {
                return this.lockItemFieldSpecified;
            }
            set
            {
                this.lockItemFieldSpecified = value;
            }
        }
    }

    /// <remarks/>
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
    public class NetMsmqBindingMsgSecurity
    {
        public NetMsmqBindingMsgSecurity()
        {
            System.ServiceModel.NetMsmqBinding source = new System.ServiceModel.NetMsmqBinding();
            this.modeField = (NetMsmqBindingMsgSecurityMode)source.Security.Mode;
        }

        private NetMsmqBindingMsgSecurityMessage messageField;

        private NetMsmqBindingMsgSecurityTransport transportField;

        private NetMsmqBindingMsgSecurityMode modeField;

        private bool modeFieldSpecified;

        private string lockAttributesField;

        private string lockAllAttributesExceptField;

        private string lockElementsField;

        private string lockAllElementsExceptField;

        private bool lockItemField;

        private bool lockItemFieldSpecified;

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("message", typeof(NetMsmqBindingMsgSecurityMessage))]
        public NetMsmqBindingMsgSecurityMessage message
        {
            get
            {
                return this.messageField;
            }
            set
            {
                this.messageField = value;
            }
        }

        [System.Xml.Serialization.XmlElementAttribute("transport", typeof(NetMsmqBindingMsgSecurityTransport))]
        public NetMsmqBindingMsgSecurityTransport transport
        {
            get
            {
                return this.transportField;
            }
            set
            {
                this.transportField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public NetMsmqBindingMsgSecurityMode mode
        {
            get
            {
                return this.modeField;
            }
            set
            {
                this.modeField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool modeSpecified
        {
            get
            {
                return this.modeFieldSpecified;
            }
            set
            {
                this.modeFieldSpecified = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string lockAttributes
        {
            get
            {
                return this.lockAttributesField;
            }
            set
            {
                this.lockAttributesField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string lockAllAttributesExcept
        {
            get
            {
                return this.lockAllAttributesExceptField;
            }
            set
            {
                this.lockAllAttributesExceptField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string lockElements
        {
            get
            {
                return this.lockElementsField;
            }
            set
            {
                this.lockElementsField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string lockAllElementsExcept
        {
            get
            {
                return this.lockAllElementsExceptField;
            }
            set
            {
                this.lockAllElementsExceptField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public bool lockItem
        {
            get
            {
                return this.lockItemField;
            }
            set
            {
                this.lockItemField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool lockItemSpecified
        {
            get
            {
                return this.lockItemFieldSpecified;
            }
            set
            {
                this.lockItemFieldSpecified = value;
            }
        }
    }

    /// <remarks/>
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
    public class NetMsmqBindingMsgSecurityMessage
    {
        public NetMsmqBindingMsgSecurityMessage()
        {
            System.ServiceModel.NetMsmqBinding source = new System.ServiceModel.NetMsmqBinding();
            this.clientCredentialTypeField = (NetMsmqBindingMsgSecurityMessageClientCredentialType)source.Security.Message.ClientCredentialType;
        }

        private NetMsmqBindingMsgSecurityMessageClientCredentialType clientCredentialTypeField;

        private bool clientCredentialTypeFieldSpecified;

        private string algorithmSuiteField;

        private string lockAttributesField;

        private string lockAllAttributesExceptField;

        private string lockElementsField;

        private string lockAllElementsExceptField;

        private bool lockItemField;

        private bool lockItemFieldSpecified;

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public NetMsmqBindingMsgSecurityMessageClientCredentialType clientCredentialType
        {
            get
            {
                return this.clientCredentialTypeField;
            }
            set
            {
                this.clientCredentialTypeField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool clientCredentialTypeSpecified
        {
            get
            {
                return this.clientCredentialTypeFieldSpecified;
            }
            set
            {
                this.clientCredentialTypeFieldSpecified = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string algorithmSuite
        {
            get
            {
                return this.algorithmSuiteField;
            }
            set
            {
                this.algorithmSuiteField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string lockAttributes
        {
            get
            {
                return this.lockAttributesField;
            }
            set
            {
                this.lockAttributesField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string lockAllAttributesExcept
        {
            get
            {
                return this.lockAllAttributesExceptField;
            }
            set
            {
                this.lockAllAttributesExceptField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string lockElements
        {
            get
            {
                return this.lockElementsField;
            }
            set
            {
                this.lockElementsField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string lockAllElementsExcept
        {
            get
            {
                return this.lockAllElementsExceptField;
            }
            set
            {
                this.lockAllElementsExceptField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public bool lockItem
        {
            get
            {
                return this.lockItemField;
            }
            set
            {
                this.lockItemField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool lockItemSpecified
        {
            get
            {
                return this.lockItemFieldSpecified;
            }
            set
            {
                this.lockItemFieldSpecified = value;
            }
        }
    }

    /// <remarks/>
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
    public enum NetMsmqBindingMsgSecurityMessageClientCredentialType
    {

        /// <remarks/>
        None,

        /// <remarks/>
        Windows,

        /// <remarks/>
        UserName,

        /// <remarks/>
        Certificate,

        /// <remarks/>
        IssuedToken,
    }

    /// <remarks/>
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
    public class NetMsmqBindingMsgSecurityTransport
    {
        public NetMsmqBindingMsgSecurityTransport()
        {
            System.ServiceModel.MsmqTransportSecurity source = new System.ServiceModel.MsmqTransportSecurity();
            this.msmqAuthenticationModeField = (NetMsmqBindingMsgSecurityTransportMsmqAuthenticationMode)source.MsmqAuthenticationMode;
            this.msmqEncryptionAlgorithmField = (NetMsmqBindingMsgSecurityTransportMsmqEncryptionAlgorithm)source.MsmqEncryptionAlgorithm;
            this.msmqProtectionLevelField = (NetMsmqBindingMsgSecurityTransportMsmqProtectionLevel)source.MsmqProtectionLevel;
            this.msmqSecureHashAlgorithmField = (NetMsmqBindingMsgSecurityTransportMsmqSecureHashAlgorithm)source.MsmqSecureHashAlgorithm;
        }

        private NetMsmqBindingMsgSecurityTransportMsmqAuthenticationMode msmqAuthenticationModeField;

        private bool msmqAuthenticationModeFieldSpecified;

        private NetMsmqBindingMsgSecurityTransportMsmqEncryptionAlgorithm msmqEncryptionAlgorithmField;

        private bool msmqEncryptionAlgorithmFieldSpecified;

        private NetMsmqBindingMsgSecurityTransportMsmqProtectionLevel msmqProtectionLevelField;

        private bool msmqProtectionLevelFieldSpecified;

        private NetMsmqBindingMsgSecurityTransportMsmqSecureHashAlgorithm msmqSecureHashAlgorithmField;

        private bool msmqSecureHashAlgorithmFieldSpecified;

        private string lockAttributesField;

        private string lockAllAttributesExceptField;

        private string lockElementsField;

        private string lockAllElementsExceptField;

        private bool lockItemField;

        private bool lockItemFieldSpecified;

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public NetMsmqBindingMsgSecurityTransportMsmqAuthenticationMode msmqAuthenticationMode
        {
            get
            {
                return this.msmqAuthenticationModeField;
            }
            set
            {
                this.msmqAuthenticationModeField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool msmqAuthenticationModeSpecified
        {
            get
            {
                return this.msmqAuthenticationModeFieldSpecified;
            }
            set
            {
                this.msmqAuthenticationModeFieldSpecified = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public NetMsmqBindingMsgSecurityTransportMsmqEncryptionAlgorithm msmqEncryptionAlgorithm
        {
            get
            {
                return this.msmqEncryptionAlgorithmField;
            }
            set
            {
                this.msmqEncryptionAlgorithmField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool msmqEncryptionAlgorithmSpecified
        {
            get
            {
                return this.msmqEncryptionAlgorithmFieldSpecified;
            }
            set
            {
                this.msmqEncryptionAlgorithmFieldSpecified = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public NetMsmqBindingMsgSecurityTransportMsmqProtectionLevel msmqProtectionLevel
        {
            get
            {
                return this.msmqProtectionLevelField;
            }
            set
            {
                this.msmqProtectionLevelField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool msmqProtectionLevelSpecified
        {
            get
            {
                return this.msmqProtectionLevelFieldSpecified;
            }
            set
            {
                this.msmqProtectionLevelFieldSpecified = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public NetMsmqBindingMsgSecurityTransportMsmqSecureHashAlgorithm msmqSecureHashAlgorithm
        {
            get
            {
                return this.msmqSecureHashAlgorithmField;
            }
            set
            {
                this.msmqSecureHashAlgorithmField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool msmqSecureHashAlgorithmSpecified
        {
            get
            {
                return this.msmqSecureHashAlgorithmFieldSpecified;
            }
            set
            {
                this.msmqSecureHashAlgorithmFieldSpecified = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string lockAttributes
        {
            get
            {
                return this.lockAttributesField;
            }
            set
            {
                this.lockAttributesField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string lockAllAttributesExcept
        {
            get
            {
                return this.lockAllAttributesExceptField;
            }
            set
            {
                this.lockAllAttributesExceptField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string lockElements
        {
            get
            {
                return this.lockElementsField;
            }
            set
            {
                this.lockElementsField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string lockAllElementsExcept
        {
            get
            {
                return this.lockAllElementsExceptField;
            }
            set
            {
                this.lockAllElementsExceptField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public bool lockItem
        {
            get
            {
                return this.lockItemField;
            }
            set
            {
                this.lockItemField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool lockItemSpecified
        {
            get
            {
                return this.lockItemFieldSpecified;
            }
            set
            {
                this.lockItemFieldSpecified = value;
            }
        }
    }

    /// <remarks/>
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
    public enum NetMsmqBindingMsgSecurityTransportMsmqAuthenticationMode
    {

        /// <remarks/>
        None,

        /// <remarks/>
        WindowsDomain,

        /// <remarks/>
        Certificate,
    }

    /// <remarks/>
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
    public enum NetMsmqBindingMsgSecurityTransportMsmqEncryptionAlgorithm
    {

        /// <remarks/>
        RC4Stream,

        /// <remarks/>
        Aes,
    }

    /// <remarks/>
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
    public enum NetMsmqBindingMsgSecurityTransportMsmqProtectionLevel
    {

        /// <remarks/>
        None,

        /// <remarks/>
        Sign,

        /// <remarks/>
        EncryptAndSign,
    }

    /// <remarks/>
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
    public enum NetMsmqBindingMsgSecurityTransportMsmqSecureHashAlgorithm
    {

        /// <remarks/>
        MD5,

        /// <remarks/>
        Sha1,

        /// <remarks/>
        Sha256,

        /// <remarks/>
        Sha512,
    }

    /// <remarks/>
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
    public enum NetMsmqBindingMsgSecurityMode
    {

        /// <remarks/>
        None,

        /// <remarks/>
        Transport,

        /// <remarks/>
        Message,

        /// <remarks/>
        Both,
    }

    /// <remarks/>
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
    public enum NetMsmqBindingMsgQueueTransferProtocol
    {

        /// <remarks/>
        Native,

        /// <remarks/>
        Srmp,

        /// <remarks/>
        SrmpSecure,
    }

    /// <remarks/>
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
    public enum NetMsmqBindingMsgDeadLetterQueue
    {

        /// <remarks/>
        None,

        /// <remarks/>
        System,

        /// <remarks/>
        Custom,
    }

    /// <remarks/>
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
    public enum NetMsmqBindingMsgReceiveErrorHandling
    {

        /// <remarks/>
        Fault,

        /// <remarks/>
        Drop,

        /// <remarks/>
        Reject,

        /// <remarks/>
        Move,
    }
}
